/**
 * fulihui.com Inc.
 * Copyright (c) 2015-2016 All Rights Reserved.
 */
package com.fulihui.wgj.facade.request.autotask;

import com.fulihui.common.request.rpc.AppRequest;
import com.fulihui.wgj.facade.request.game.CalcSendCountGameContainRequest;
import com.fulihui.wgj.facade.request.game.CalcSendCountGameEliminateRequest;
import com.fulihui.wgj.facade.request.youzan.TradeOrderQueryRequest;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;

/**
 * 自动化任务计算人数的条件
 *
 * @author wang_wx
 * @date 2018-08-02
 */
@Getter
@Setter
public class CalcAutoCountRequest extends AppRequest {

    /**
     * 记录类型 (0, "SHOP", "电商"),(1, "GAME", "游戏") 用于不同业务
     * {@link com.fulihui.common.enums.TemplateLogTypeEnum}
     */
    @NotNull(message = "业务类型不能为空")
    private Integer logType;

    /**
     * 性别 1-男 2-女 0-未知 NULL-所有
     * {@link com.fulihui.common.enums.SexEnum}
     */
    private Long sex;
    /**
     * 包含排除 {@link com.fulihui.common.enums.ContainOrEliminateEnum} 以下tab同理
     */
    private String sexTab;

    /**
     * 国家
     */
    private String country;
    private String countryTab;

    /**
     * 省份/城市
     */
    private String province;
    private String provinceTab;

    /**
     * 地区
     */
    private String city;
    private String cityTab;

    /**
     * 操作系统
     * {@link com.fulihui.common.enums.OsEnum}
     */
    private String os;
    private String osTab;

    /**
     * 是否VIP发送
     */
    private Boolean vip;

    /**
     * 是否点击过链接
     */
    private String hasClickLink;
    private String hasClickLinkTab;

    /**
     * 是否点击过小程序
     */
    private String hasClickMiniProgram;
    private String hasClickMiniProgramTab;

    /**
     * 关注时间-前第几天
     */
    @NotNull(message = "关注时间-前第几天不能为空")
    private Integer subscribeTimeStart;

    /**
     * 关注时间-至前第几天
     */
    private Integer subscribeTimeEnd;

    /**
     * 有赞过滤条件
     */
    private TradeOrderQueryRequest yzFilter;

    /**
     * 游戏条件--包含
     */
    private CalcSendCountGameContainRequest containRequest;
    /**
     * 游戏条件--排除
     */
    private CalcSendCountGameEliminateRequest eliminateRequest;
}